home *** CD-ROM | disk | FTP | other *** search
/ PC Play 129 / pc play 129.iso / Demo / man2 / man2.exe / data / scripts / rlauncher_scripts.lua < prev    next >
Encoding:
Text File  |  2009-04-27  |  7.1 KB  |  195 lines

  1.  
  2. function units_rlauncher_setup()
  3.     units_setup(3,false,ENET_EFFECT_PS_SETUPSMOKE_LARGE,ENET_EFFECT_GEOMETRY_BIGROCKETSHADOW2)
  4.     units_reloadfirespots(uniGetExecutor(),2,ENET_EFFECT_BULLET_BIGROCKETROCKET)
  5. end
  6.  
  7. function units_rlauncher_resetup()
  8.     units_setup(3,false,nil,ENET_EFFECT_GEOMETRY_BIGROCKETSHADOW2)
  9.     units_reloadfirespots(uniGetExecutor(),2,ENET_EFFECT_BULLET_BIGROCKETROCKET)
  10. end
  11.  
  12. function units_rlauncher_select()
  13.     units_select(22,4)
  14. end
  15.  
  16. function units_rlauncher_unselect()
  17.     units_unselect()
  18. end
  19.  
  20. function units_rlauncher_selectenemy()
  21.     uniGetExecutor():addSimpleEffect(ENET_EFFECT_SELECTEDGEOMETRY_ENEMY)
  22. end
  23.  
  24. function units_rlauncher_damaged()
  25.     uniGetExecutor():applyDamage(uniGetLife())
  26. end
  27.  
  28. function units_rlauncher_highlight()
  29.     uniGetExecutor():addEffectWithRadius(ENET_EFFECT_GEOMETRY_HIGHLIGHT,15)
  30. end
  31.  
  32. function units_rlauncher_explode()
  33.     units_explode_big1()
  34. end
  35.  
  36. function units_rlauncher_move()
  37.     local unit = uniGetExecutor()
  38.     local sound = unit:play3DSound("bigrocket_move.wav",1)
  39.     local steps = {}
  40.     local i = 0;
  41.     for i = 0,1 do
  42.         steps[i] = unit:getBone(ENBT_STEPEMITTER,i):addSimpleEffect(ENET_EFFECT_DYNAMICGEOMETRY_LIGHTTANKSTEPSEMITTER)
  43.         steps[i+2] = unit:getBone(ENBT_STEPEMITTER,i):addSimpleEffect(ENET_EFFECT_PS_NEWTRACKSMOKE)
  44.     end
  45.     waitDeath(unit:addRotationEffect(ENET_EFFECT_ROTATE_UNIT,MATH_PI * 1.0))
  46.     waitDeath(unit:addMoveEffect(ENET_EFFECT_MOVE_LINEAR,100))
  47.     sound:destroy()
  48.     unit:play3DSound("bigrocket_stop.wav",0):destroy()
  49.     for i = 0,1 do
  50.         if(unit:getScale() < 1.0) then 
  51.             steps[i]:destroy()
  52.         else
  53.             steps[i]:setTransformOwner()
  54.             steps[i]:suspendedDestroy(70)
  55.         end
  56.         steps[i+2]:suspendedDestroy(1.0)
  57.     end
  58. end
  59.  
  60. function units_rlauncher_fire()
  61.     local unit = uniGetExecutor()
  62.     wait_for_platform(unit)
  63.     uniSetLife(uniGetLife() / 3.0)
  64.     local gt = unit:getBone(ENBT_GUNTOWER)
  65.     unit:play3DSound("bigrocket_prepareforfire.wav",0):destroy()
  66.     unit:addAnimationToQueue(ENAT_PREPAREFORFIRE1,1)
  67.     unit:addAnimationToQueue(ENAT_FIREPOSITION1,MATH_INFINITY)
  68.     pause(1.0)
  69.     local sound = gt:play3DSound("bigrocket_guntower_rotate.wav",1)
  70. --    waitDeath(gt:addRotationEffect(ENET_EFFECT_ROTATE_GUNTOWERTOTARGET,MATH_PI,uniGetTarget()))
  71.     waitDeath(gt:parabolicTargetting(uniGetTarget(),unit:getBone(ENBT_FIRE2)))
  72.  
  73.     sound:destroy()
  74.     local st_ps = gt:addSimpleEffect(ENET_EFFECT_PS_BIGROCKETFIRE)
  75.     local i
  76.     for i=0,2 do
  77.         unit:findEffect(ENET_EFFECT_BULLET_BIGROCKETROCKET):executeCommand(ENC_FIRE1)
  78.         pause(0.4)
  79.     end
  80.     st_ps:suspendedDestroy(2.0)
  81.     units_reloadfirespots(uniGetExecutor(),2,ENET_EFFECT_BULLET_BIGROCKETROCKET)
  82.     pause(1.0)
  83.     sound = gt:play3DSound("bigrocket_guntower_rotate.wav",1)
  84.     waitDeath(gt:addRotationEffect(ENET_EFFECT_ROTATE_GUNTOWERDEFAULT,MATH_PI,uniGetTarget()))
  85.     sound:destroy()
  86.     unit:addAnimationToQueue(ENAT_AFTERFIRE1,1)
  87.     unit:setCurrentAnimationRepeatCount(1)
  88.     unit:play3DSound("bigrocket_prepareforfire.wav",0):destroy()
  89.     unit:addFireArrow()
  90. end
  91.  
  92. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_MOVE,"units_rlauncher_move")
  93. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_FIRE1,"units_rlauncher_fire")
  94. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_FIRE2,"units_rlauncher_fire")
  95. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_SELECT,"units_rlauncher_select")
  96. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_SELECTENEMY,"units_rlauncher_selectenemy")
  97. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_UNSELECT,"units_rlauncher_unselect")
  98. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_SETUP,"units_rlauncher_setup")
  99. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_RESETUP,"units_rlauncher_resetup")
  100. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_DAMAGED,"units_rlauncher_damaged")
  101. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_EXPLODE,"units_rlauncher_explode")
  102. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_HIGHLIGHT,"units_rlauncher_highlight")
  103. registerCommand(ENSCRIPTSET_BIGROCKET,ENC_INSIDE,"units_inside")
  104.  
  105. -- make description of unit
  106. desc = getEffectDescriptionP(ENET_UNIT_BIGROCKET)
  107. desc.ClassID = ENCLASS_MESHINSTANCE
  108. desc.EffectClassType = ENECT_GEOMETRY
  109. desc.FileName = "bigrocket.rmd"
  110. desc.ScriptSet = ENSCRIPTSET_BIGROCKET
  111. desc.MoveType = ENMOVE_GROUNDORIENTED
  112. desc.RenderType = ENRENDERTYPE_GEOMETRY
  113. desc.Material = ENMAT_RIGIDSKINNEDMESH
  114. desc.MaterialColors = units_materialcolors_human
  115.  
  116. -- shadow
  117. desc = getEffectDescriptionP(ENET_EFFECT_GEOMETRY_BIGROCKETSHADOW2)
  118. desc.ClassID = ENCLASS_MESHINSTANCE
  119. desc.EffectClassType = ENECT_GEOMETRY
  120. desc.FileName = "bigrocket_shadow2.rmd"
  121. desc.RenderType = ENRENDERTYPE_SHADOW
  122. desc.Material = ENMAT_SHADOW
  123. desc.MaterialColors = units_materialcolors_shadow
  124.  
  125. -- register new unit to logic
  126. unitDesc = logic_getUnitDescP(3)
  127. unitDesc.group = 0
  128. unitDesc.order = 4
  129. unitDesc.unit_res_id = ENET_UNIT_BIGROCKET
  130. unitDesc.unit_icon_id = "Bigrocket_h_small_normal.dds"
  131. unitDesc.active_id = "Bigrocket_h_small_active.dds"
  132. unitDesc.pressed_id = "Bigrocket_h_small_pressed.dds"
  133. unitDesc.big_icon_id = "Bigrocket_h_big_normal.dds"
  134. unitDesc.small_icon_id = "Bigrocket_u_stats.dds"
  135. unitDesc.HP = 3
  136. unitDesc.MP = 10
  137. unitDesc.WR = 4
  138. unitDesc.min_WR = 2
  139. unitDesc.WD = 3
  140. unitDesc.WR2 = 0
  141. unitDesc.min_WR2 = 0
  142. unitDesc.WD2 = 0
  143. unitDesc.ability = 0
  144. unitDesc.transport = 0
  145. unitDesc.value = 4
  146. unitDesc.race = 0
  147. unitDesc.fire_pause = 5.0
  148. unitDesc.move_pause = 0.7
  149. unitDesc.unit_info_scale = 0.06
  150. unitDesc.scn_name = "ARTILLERY"
  151.  
  152. ------------------------------------------------------------------------------------------------------
  153. ------------------------ effects related to unit------------------------------------------------------
  154. ------------------------------------------------------------------------------------------------------
  155.  
  156. function bullets_bigrocket_fire()
  157.     local bullet = uniGetExecutor()
  158.     bullet:setTransformOwner()
  159.     bullet:play3DSound("bigrocket_rocket_start.wav",0):destroy()
  160.     waitDeath(bullet:addMoveEffect(ENET_EFFECT_MOVE_ROCKETSTART,130,uniGetTarget(),40.0))
  161.     local light = bullet:addSimpleEffect(ENET_EFFECT_LIGHT_ROCKETENGINE)
  162. --    local sound = bullet:play3DSound("bigrocket_rocket_fly.wav",1)
  163.     bullet:play3DSound("bigrocket_rocket_fly.wav",0)
  164.     local track = bullet:addSimpleEffect(ENET_EFFECT_PS_BIGROCKETENGINE)
  165. --[[
  166.     local gravity = createInterpolator()
  167.     gravity:addKey(0.0,-350.0)
  168.     gravity:addKey(1.0,150.0)
  169.     gravity:addKey(2.0,-250.0)
  170.     gravity:addKey(3.0,250.0)
  171.     gravity:addKey(4.0,-250.0)
  172.     gravity:addKey(5.0,250.0)
  173.     gravity:addKey(6.0,-250.0)
  174.     gravity:addKey(7.0,250.0)
  175.     gravity:addKey(8.0,-350.0)
  176.     gravity:finalize(false)
  177.     local trajectory = bullet:parabolicFly(uniGetTarget())
  178.     trajectory:addInterpolator(gravity,getFieldOffset(EN_FIELD_3DPARABOLICMOVER_GRAVITY))
  179.     waitDeath(trajectory)
  180. ]]--
  181.     waitDeath(bullet:parabolicFly(uniGetTarget()))
  182. --    sound:destroy()
  183.     light:destroy()
  184.     track:suspendedDestroy(1.0)
  185.     bullet:play3DSound("bigrocket_rocket_explode.wav",0):destroy()
  186.     bullet:setVisibility(false,true)
  187.     bullet:addSimpleEffect(ENET_EFFECT_LIGHT_ROCKETEXPLODE):delayedDestroy(1.0)
  188.     bullet:addSimpleEffect(ENET_EFFECT_PS_BIGROCKETEXPLODE):suspendedDestroy(1.0)
  189.     uniGetTarget():executeCommand(ENC_DAMAGED)
  190.     pause(1.0)
  191.     bullet:destroy()
  192. end
  193.  
  194. registerCommand(ENSCRIPTSET_BIGROCKET_ROCKET,ENC_FIRE1,"bullets_bigrocket_fire")
  195.